#pragma once

#include <gtl/module/IPluginHost.h>

enum EDirectoryType
{
	DT_Curr,
	DT_Prev,
};

DMIID(ExplorerPluginHost, B1A40451, C92F, 466e, 8E, CF, 94, FD, 8F, 6B, 6D, 86)
class IExplorerPluginHost : public IInterface<IPluginHost>
{
protected:
	typedef void(*ProcessFun)(void* /*pUserData*/, const std::vector<CString>& /*vecFilePaths*/);

public:
	virtual LPCTSTR ShowCopyAsDlg(const std::vector<CString>& vecFiles, bool bIsCopyTo) = 0;
	virtual HRESULT GetDirectory(LPTSTR* lppszDirectory, uint16 nCount, EDirectoryType eDirectoryType) = 0;

	virtual HRESULT RegisterCopyAsPath(LPCTSTR lpszDesc, ProcessFun Process, void* pUserData) = 0;
	virtual HRESULT UnregisterCopyAsPath(LPCTSTR lpszDesc) = 0;
};
